package thread;

/**
 * 线程的另一种创建方式:
 * 实现Runnable接口单独定义线程任务
 */
public class ThreadDemo2 {
    public static void main(String[] args) {
        //单独实例化任务
       Runnable r1=new MyRunnable1();
       Runnable r2=new MyRunnable2();
       //创建线程并指派任务
        Thread t1=new Thread(r1);
        Thread t2=new Thread(r2);
        t1.start();
        t2.start();
    }
}

/**
 * 这里单独定义线程任务是实现Runnable接口（或者后期在线程池中实现Callable接口）
 * 由于是实现接口，不再是直接继承Thread,因此美誉继承冲突问题了。
 * 线程与任务解耦，可以让线程重复使用（后期线程池中会看到这个情况）
 */
class MyRunnable1 implements Runnable{
    public void run(){
        for(int i=0;i<1000;i++){
            System.out.println("你是谁啊");
        }
    }
}
class MyRunnable2 implements Runnable{
    public void run(){
       for(int i=0;i<1000;i++){
           System.out.println("开门，查水表的！");
       }
    }
}
